1. Technical Field
This invention relates to the analysis of data transfer activity on systems such as data networks and data busses. More particularly, the invention relates to a system and a method to capture data transfer activity from a source computer system and recreate this activity on a reference system.
2. Description of the Related Art
A common problem faced by computer system developers involves the testing and debugging of hardware and software. In many cases a new hardware/software system such as a particular disk array and its associated drivers will be designed, manufactured, tested and sold. When the hardware/software system is fielded, certain customers will often report new problems not uncovered during prerelease testing. These new problems typically are uncovered because the customer""s computer system configuration differs from the one used by the manufacturer to test the new hardware/software product. Ideally, the manufacturer would test a new product in all possible computer system configurations, but this is nearly impossible in most cases because the total number of possible system configurations in which the new hardware/software system may be placed is often unbounded.
Various forms of logic analyzers and bus analyzers are known in the art. These analyzers are used to test and analyze hardware/software systems such as disk arrays and systems such as computer boards which connect into a backplane chassis. Logic analyzers provide a plurality of test probes to collect digital data. One probe is connected to a clock input, another to a ground reference, and each other probe is connected to a test point to collect a bit of information each clock interval. Logic analyzers typically provide a menu driven user interface which allows collections of probes to be grouped into binary words and viewed, for example, as hexidecimal codes on a display monitor. Some logic analyzers also interpret and disassemble words captured from the bus and display associated mnemonics to make it easier for a technician or engineer to understand the captured data.
Known logic analyzers and related bus analyzers are able to capture data from a source computer system, format the data into a collection of logical data structures, collect statistical performance information related thereto, and present the data in various processed forms to a user. However, presently available systems assume a technician or engineer is available to both capture the information from the source computer system and analyze the data. The analysis of the captured information often involves trouble shooting to determine the source of an event such as an error condition or a slow down in performance. In many cases the end user has access to a source computer system which in which the event is observed. The end user is often not the same person as the technician or engineer assigned with supporting the product causing the event. Hence, a need arises to be able to duplicate the event in a reference system. The reference system is preferably a computer system maintained by the technician or engineer assigned with supporting the product.
In a computer hardware/software development environment, it is often very difficult to duplicate the environment associated with the source computer system located at a customer""s site. This is because the source computer system and the reference system may have different numbers and types of host adapters, operating systems, disk drives, disk arrays, or other devices. Hence, while known logic analyzers and bus analyzers are well suited to diagnosing a problem located in a given system, they are not well suited to allow a remote technician to diagnose the problem. As a result, considerable time and effort is spent by product support engineering staffs in duplicating computer systems with diverse configurations which give rise to various problems encountered in different remote source computer systems maintained by customers.
Various types of sophisticated analyzers have been designed to enhance the functionality of a logic analyzer. For example, U.S. Pat. No. 5,457,694 describes a bus analyzer used for an advanced technology attachment (ATA) bus. The ATA bus is also known as an integrated device electronics (IDE) bus. The ATA bus analyzer disclosed therein performs tasks related to trouble shooting and performance measurement. This system captures data from an ATA bus much like a logic analyzer. A trigger may be used to control the starting and stopping of data capture. This analyzer uses a filter function to throw away large volumes of useless information which otherwise require storage space and obscure the trouble shooting process. Also, this analyzer formats data and provides a menu driven user interface. This user interface allows the user to search through a database of captured data to locate a particular event detected on the ATA bus. However, this system is useful only for trouble shooting a source computer system directly. This system does not provide a means for data to be captured from a given source computer system and then replayed in on a reference system to duplicate a run-time error.
In U.S. Pat. No. 5,446,874, a network analyzer is developed which is used to capture data transmitted on a network node. This system captures information, filters it to remove useless information, formats the data, and produces a statistical event vector relating to an observed traffic pattern. An expert system then views the statistical data as represented by the event vectors and determines when a network problem exists. This system allows performance to be analyzed. Again, this system is useful for only trouble shooting and analyzing performance on a given source computer system directly. This system does not provide a means for data to be captured from a given source computer system and then replayed in a reference system to duplicate a run-time error off-premises.
It would be desirable to have a process which could capture data from a source computer system and use this data to duplicate an event in a reference system. It would be desirable for this process to filter useless information from the captured data, and format the captured data according to higher-level template data structures representative of command and data transfers. It would be desirable to use this higher level representation to replicate command and data transfer transaction sequences observed within the source computer system. It would be desirable to be able to replay only selected portions of these sequences in the reference system so that only selected hardware in the reference system is made to participate in the replicated transaction sequences. It would further be desirable to use data captured and formatted by such a process to enable performance analysis of the source computer system. It would also be desirable to use the template data structures to provide information to a simulator which emulates system behavior for trouble shooting and performance analysis.
The present invention involves a method of processing captured data to allow events and error conditions observed on a source computer system to be reproduced on a reference system. A process of electronic system analysis according to the present invention includes the steps of converting a captured data file to a set of template data structures and playing back at least a subset of the template data structures to reproduce an event.
The present invention also provides a computer system as used to evaluate data collected from a source computer system as maintained by a customer. The computer system includes a host computer, a target device, a data transfer interconnect coupled between the host computer and the target device, and a software module. The software module is operative to play a sequence of data transactions as defined by information related to a data transfer sequence captured from a source computer system. The software module is also operative to record information returned by the target device. The target device is substantially identical to a source target device involved in at least some of the data transfers as captured from the source computer system.
Another aspect of the present invention provides a test apparatus which may be used to evaluate problems identified remotely. This test equipment includes a host adapter coupled to an interconnect. The test equipment also includes a control module coupled to the host adapter and operative to convert a template data structure into a physical layer data transfer. The physical layer data transfer takes place via the interconnect. The control module is also operative to record information related to a data transfer generated by a target device coupled to the interconnect. The template data structure is constructed to replicate a data transfer captured from a source computer system distinct from the apparatus.
Still another aspect of the present invention provides an electronically readable computer storage medium onto which is written a computer program. The computer program includes a data parser software module. This software module is coupled to receive an input stream representative of data captured from a source computer system. The data parser software module is also operative to produce a template data structure. The template data structure is representative of a data transaction at a selected protocol layer. The program also includes a data interpreter and organizer software module. This software module is coupled to receive the template data structure and to produce an output stream which includes one or more template data structures. This output stream is organized into an arrangement such as a particular file structure. The program also includes a host program software module coupled to receive information from the data interpreter and organizer software module. The host program module is coupled to control a host adapter. The host program is operative to recreate a data transfer related to the template data structure in a reference computer system other than the source computer system.